package DAO;

import java.util.List;

import com.sel.modelo.Equipamento;
import com.sel.modelo.Laboratorio;

import android.content.ContentValues;
import android.content.Context;

public class LaboratorioDAO extends DAOGeneric<Laboratorio>
{
    public static final String    TABELA = "laboratorio";
    public static final String[] COLUNAS = {"id_laboratorio", "numero_laboratorio", "andar_laboratorio", "capacidade_laboratorio", "Campi_laboratorio", "status_laboratorio"}; 
    public static final String SCRIPT_CRIACAO_TABELA_LABORATORIO = "CREATE TABLE "+ TABELA +"( " +
                                                                    COLUNAS[0]+" INTEGER PRIMARY KEY," +
                                                                    COLUNAS[1]+" INTEGER," +
                                                                    COLUNAS[2]+" INTEGER," +
                                                                    COLUNAS[3]+" INTEGER," +
                                                                    COLUNAS[4]+" INTEGER," +
                                                                    COLUNAS[5]+" INTEGER" +
                                                                    ");";
    public static final String SCRIPT_DELECAO_TABELA_LABORATORIO = "DROP TABLE IF EXISTS "+TABELA;
    
    public static SalaDAO instance;   
    
    public static SalaDAO getInstance(Context context) 
    {
        if(instance == null)
        {
            instance = new SalaDAO(context);
        }
        return instance;
    }

    public LaboratorioDAO(Context context) 
    {
        super(context);
    }
    
    @Override
    public String getNomeColunaPrimaryKey() 
    {
        return COLUNAS[0];
    }

    @Override
    public String getNomeTabela() 
    {
        return TABELA;
    }

    @Override
    public ContentValues entidadeParacontentValues(Laboratorio laboratorio)
    {
        ContentValues values = new ContentValues();
        if (laboratorio.getId()> 0)
        {
            values.put(COLUNAS[0], laboratorio.getId());
        }
        values.put(COLUNAS[1], laboratorio.getNumero_Laboratorio());
        values.put(COLUNAS[2], laboratorio.getAndar_Laboratorio());
        values.put(COLUNAS[3], laboratorio.getCapacidade_Laboratorio());
        values.put(COLUNAS[4], laboratorio.getCampi_laboratorio());
        values.put(COLUNAS[5], laboratorio.getStatusLaboratorio());
        return values;
    }

    @Override
    public Laboratorio contentValuesParaEntidade(ContentValues contentValues) 
    {
        Laboratorio laboratorio = new Laboratorio();
        laboratorio.setId(contentValues.getAsInteger(COLUNAS[0]));
        laboratorio.setNumero_Laboratorio(contentValues.getAsInteger(COLUNAS[1]));
        laboratorio.setAndar_Laboratorio(contentValues.getAsInteger(COLUNAS[2]));
        laboratorio.setCapacidade_Laboratorio(contentValues.getAsInteger(COLUNAS[3]));
        laboratorio.setCampi_laboratorio(contentValues.getAsInteger(COLUNAS[4]));
        laboratorio.setStatusLaboratorio(contentValues.getAsInteger(COLUNAS[5]));
        return laboratorio;
    }

	public List<Laboratorio> buscaLaboratoriosPorCampi(int idcampi) 
	{
		String query = "SELECT * " +
		                 "FROM laboratorio " +
		                "WHERE Campi_laboratorio = "+idcampi+" "+
		                  "AND status_laboratorio = "+ 0;
		List<Laboratorio> resultado = this.recuperarPorQuery(query);
		return resultado;
	}

	public int buscaNumeroLaboratorioPorId(int idLaboratorio) 
	{
		String query = "SELECT * " +
		                " FROM laboratorio " +
		                "WHERE id_laboratorio = "+idLaboratorio;
		List<Laboratorio> resultado = this.recuperarPorQuery(query);
		if (!resultado.isEmpty())
		{
			for (Laboratorio laboratorios : resultado) 
			{
				return  laboratorios.getNumero_Laboratorio();
			}
		}
		return 0;
	}
}
